#ifndef FILTER_H
#define FILTER_H

#include <math.h>

#define M_PI 3.14159265358979323846

typedef float FTR_PRECISION;

typedef struct {
    int n;
    FTR_PRECISION* A;
    FTR_PRECISION* d1;
    FTR_PRECISION* d2;
    FTR_PRECISION* w0;
    FTR_PRECISION* w1;
    FTR_PRECISION* w2;
} BWLowPass;

/* Function prototypes */
BWLowPass* create_bw_low_pass_filter(int order, FTR_PRECISION s, FTR_PRECISION f);
void free_bw_low_pass(BWLowPass* filter);

#endif /* FILTER_H */
